/*
 * 文 件 名 : ImageBytesCompressUtils.java
 * 版    权 : China Machi.Co.,Ltd.Copyright 2009-2011.All rights reserved
 * 描    述 : <描述>
 * 修 改 人 : lixg
 * 修改时间 : 2012-10-31
 * 跟踪单号 : <跟踪单号>
 * 修改单号 : <修改单号>
 * 修改内容 : <修改内容>
 */
package com.fire8.dolphin.utils;

import java.io.ByteArrayOutputStream;

import android.graphics.Bitmap;
import android.graphics.Matrix;

/**
 * <一句话功能简介><br>
 * <功能详细描述>
 *
 * @author  lixg
 * @version [版本号,2012-10-31]
 * @see     [相关类/方法]
 * @since   [产品/模块]
 */
public class ImageBytesCompressUtils
{
    public static Bitmap imageBytesCompress(Bitmap srcBmp) {
        //图片允许最大空间   单位：KB
        double maxSize =50.00;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        srcBmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] b = baos.toByteArray();
        double mid = b.length/1024;
        if (mid > maxSize) {
                double i = mid / maxSize;
                srcBmp = imageSizeZoom(srcBmp, srcBmp.getWidth() / Math.sqrt(i),
                 srcBmp.getHeight() / Math.sqrt(i));
                
        }
         return srcBmp;
}



/***
 * 图片的缩放方法
 * 
 * @param bgimage
 *            ：源图片资源
 * @param newWidth
 *            ：缩放后宽度
 * @param newHeight
 *            ：缩放后高度
 * @return
 */
public static  Bitmap imageSizeZoom(Bitmap bgimage, double newWidth,
                double newHeight) {
        float width = bgimage.getWidth();
        float height = bgimage.getHeight();
        Matrix matrix = new Matrix();
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
                        (int) height, matrix, true);
        return bitmap;
}


}
